//index.js
//获取应用实例
const app = getApp()

Page({
  data: {
    item: 0,
    tab: 0,
    playlist:[{
      id: 1 , title: '只因你太美', singer: '蔡徐坤' ,
      src: 'http://www.bijiguai.com/zyntm.mp3'
    },{
      id: 2, title: '只因你太美', singer: '蔡徐坤',
        src: 'http://www.bijiguai.com/zyntm.mp3'
    }, {
      id: 3, title: '只因你太美', singer: '蔡徐坤',
        src: 'http://www.bijiguai.com/zyntm.mp3'
    }, {
      id: 4, title: '只因你太美', singer: '蔡徐坤',
        src: 'http://www.bijiguai.com/zyntm.mp3'
    }],
    state:'paused',
    playIndex:0,
    play:{
      currentTime:'00:00',
      duration:'00:00',
      percent:0,
      title:'',
      singer:'',
      coverImgUrl:'../images/cxk.jpg',
    },
  },
  //将item的值设为当前导航的值
  changeItem: function(e) {
    this.setData({
      item: e.target.dataset.item
    })
  },
  //改变tab的值
  changeTab: function(e){
    this.setData({
      tab: e.detail.current
    })
  },
  //事件处理函数
  bindViewTap: function() {
    wx.navigateTo({
      url: '../logs/logs'
    })
  },
  //实现音乐播放功能
  audioCtx:null,
  onReady:function(){
    this.audioCtx = wx.createInnerAudioContext()
    this.setMusic(0)
    var that = this
    //播放失败检测
    this.audioCtx.onError(function(){
      console.log('播放失败：' + that.audioCtx.src)
    })
    //播放完成自动换下一首
    this.audioCtx.onEnded(function(){
      that.next()
    })
    //自动更新播放进度
    this.audioCtx.onPlay(function () {})
    this.audioCtx.onTimeUpdate(function(){
      that.setData({
        'play.duration': formatTime(that.audioCtx.duration),
        'play.currentTime': formatTime(that.audioCtx.currentTime),
        'play.percent': that.audioCtx.currentTime / that.audioCtx.duration * 100
      })
    })
    //默认选第一首
    this.setMusic(0)
    //格式化时间
    function formatTime(time){
      var minute = Math.floor(time / 60) % 60;
      var second = Math.floor(time) % 60
      return (minute < 10 ? '0' + minute : minute) + ':' + (second < 10 ? '0' + second : second)
    }
    
  },
  setMusic:function(index) {
    var music = this.data.playlist[index]
    this.audioCtx.src = music.src
    this.setData({
      playIndex: index,
      'play.title':music.title,
      'play.singer':music.singer,
      'play.coverImgUrl':music.coverImgUrl,
      'play.currntTime':'00:00',
      'play.duration':'00:00',
      'play.percent':0
    })
  },
  //点击播放按钮
  play: function(){
    this.audioCtx.play()
    this.setData({state:'running'})
  },
  //点击暂停按钮
  pause: function(){
    this.audioCtx.pause()
    this.setData({state:'paused'})
  },
  //点击播放下一首按钮
  next: function(){
    var index = this.data.playIndex >= this.data.playlist.length - 1 ? 0 : this.data.playIndex + 1
    this.setMusic(index)
    if(this.data.state === 'running'){
      this.play()
    }
  },
  //控制进度条
  slideChange:function(e){
    var second = e.detail.value * this.audioCtx.duration / 100
    this.audioCtx.seek(second)
  },
  // 实现换歌功能
  change: function(e){
    this.setMusic(e.currentTarget.dataset.index)
    this.play()
  },
  onLoad: function () {
    if (app.globalData.userInfo) {
      this.setData({
        userInfo: app.globalData.userInfo,
        hasUserInfo: true
      })
    } else if (this.data.canIUse){
      // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
      // 所以此处加入 callback 以防止这种情况
      app.userInfoReadyCallback = res => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    } else {
      // 在没有 open-type=getUserInfo 版本的兼容处理
      wx.getUserInfo({
        success: res => {
          app.globalData.userInfo = res.userInfo
          this.setData({
            userInfo: res.userInfo,
            hasUserInfo: true
          })
        }
      })
    }
  },
  getUserInfo: function(e) {
    console.log(e)
    app.globalData.userInfo = e.detail.userInfo
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  }
})
